1. Field of the Invention
The invention relates to the field of resource management, and particularly to the field of optimized scheduling and allocation of resources such as agents in multimedia contact centers.
2. Discussion of the State of the Art
In the last forty years, “customer care” using remote call or contact centers (that is, remote from the perspective of the customer being cared for, as opposed to in-person customer care at, for example, a retail establishment, which is clearly not remote) has become a major activity of large corporations. Various estimates indicate that somewhere between 2 and 5 million people in the United States alone currently work on call or contact centers (in the art, “call center” generally refers to a center that handles only phone calls, while “contact center” refers to a center that handles not only calls but also other customer communication channels, such as electronic mail (“email”), instant messaging (“1M”), short message service (“SMS”), chat, web sessions, and so forth; in this document, applicant will generally use the term “contact center”, which should be understood to mean either call centers or contact centers, as just defined).
Contact centers are home to some of the more complex business processes engaged in by enterprises, since the process is typically carried out not only by employees or agents of the enterprise “running” the contact center, but also by the customers of the enterprise. Since an enterprise's customers will generally have goals that are different from, and often competitive with, the goals of the enterprise, and since customer care personnel (contact center “agents”) will often also have their own goals or preferences that may not always match those of the enterprise, the fact is that contact center processes lie somewhere between collaborative processes and purely competitive processes (like a courtroom trial). The existence of multiple competing or at least non-aligned stakeholders jointly carrying out a process means that, even when great effort is expended to design an efficient process, what actually occurs is usually a dynamic, surprising, and intrinsically complex mix of good and bad sub-processes, many of which occur without the direction or even knowledge of an enterprise's customer care management team.
Despite the complexity of contact center operations, it is a matter of significant economic importance to try to improve both the productivity of contact centers (from the enterprise's perspective) and the quality of the experience of the customers they serve. Accordingly, a number of well-known routing approaches have been adopted in the art, with the goal of getting each interaction to a most appropriate resource (resource being an agent or other person, or automated system, suitable for fulfilling a customer's service needs). For example, queues are still used in many contact centers, with most queues being first-in-first-out (FIFO) queues. In some cases in the art, enhancements to queue-based routing include use of priority scores for interaction, with higher-priority interactions being pushed “up” in queues to get quicker service. Queue-based routing has the advantage of simplicity and low cost, and is generally still in widespread use in applications where interactions are generally commodity-like or very similar (and therefore where the choice of a particular agent for a particular customer may not be that helpful).
An extension of the basic queuing approach is skills-based routing, which was introduced in the mid-1990s. In skills-based routing, each “agent” or customer service representative is assigned certain interaction-handling skills, and calls are queued to groups of agents who have the requisite skills needed for the call. Skills-based routing introduced the idea that among a large population of agents, some would be much more appropriate to handle a particular customer's need than others, and further that by assigning skills to agents and expressing the skills needed to serve a particular customer need, overall customer satisfaction would improve even as productivity did in parallel. However, in the art most skills are assigned administratively (sometimes based on training completed, but often based on work assignment or workgroup policies), and do not reflect actual capabilities of agents. Moreover, it is common practice in the art to “move interactions” by reassigning skills. That is, when traffic of inbound interactions begins to pile up in one group or skill set of a contact center, staff will often reassign skills of members in other groups so that the overloaded group temporarily becomes larger (and thereby clears the backlog of queued interactions). This common practice in the art further erodes any connection between skills as assigned and actual capabilities of agents, and in general basic skills-based routing has been unable to handle the complex needs of larger contact centers.
In one approach known in the art, the concept of a “virtual waiting room” where customers looking to be served and agents available to serve customers can virtually congregate, and a matching of customers to available agents can be made, much like people would do on their own if they were in a waiting room together. This approach, while attractive on the surface, is very impractical. For example, when there is a surplus of customers awaiting service, the waiting room approach becomes nothing more than determining, one agent at a time, which customer (among those the agent is eligible to serve) has the greatest need for prompt service; similarly, in an agent surplus situation, each time a customer “arrives” in the waiting room, a best-fit agent can be selected. Because generally there will be either an agent or a customer surplus, in most cases this waiting room approach is really nothing more than skills-based routing with a better metaphor.
Finally, because none of the three approaches just described satisfactorily meets the needs of complex routing situations typical in large contact centers, another approach that has become common in the art is the generic routing scripting approach. In this approach, a routing strategy designer application is used to build complex routing strategies, and each time an interaction requiring services appears (either by arriving, in the case of inbound interactions, or being initiated, in the case of outbound interactions), an appropriate script is loaded into an execution environment and executed on behalf of that interaction. An advantage of this approach is its open-endedness, as users can construct complex routing strategies that embody complex business rules. But this approach suffers from the disadvantage that it is very complex, and requires a high degree of technical skill on the part of the routing strategy designer. This requirement for skilled designers also generally means that changes in routing strategies occur only rarely, generally as part of a major technology implementation project (thus agile adoption and adaptation of enhanced business rules is not really an option).
Another general issue with the state of the art in routing is that, in general, one routing engine is used to handle all the routing for a given agent population. In some very large enterprises, routing might be subdivided based on organizational or geographic boundaries, but in most cases a single routing engine makes all routing decisions for a single enterprise (or for several). This means that the routing engine has to be made very efficient so that it can handle the scale of computation needed for large complex routing problems, and it means that the routing engine may be a point of failure (although hot standby and other fault-tolerant techniques are commonly used in the art).
In addition to the problems noted concerning routing, a similar group of problems exists in the art with regard to workforce management (WFM). WFM is a well established branch of contact center technology, but it has been stuck for years in various permutations of a single approach to the problem. Most WFM systems run “stand alone”, without any integration to routing, outbound, or other contact center systems. WFM systems in the art are focused on solving a single problem, which is ensuring that an adequate supply of qualified agents is on hand to handle inbound call (or other interaction) volumes in accordance with established service levels (for example, 80% of all calls should be answered within 20 seconds of receipt at a contact center), while also ensuring that no oversupply of agents exists. If not enough agents are available, callers will be placed in queue and may abandon their attempt, with obvious consequences for customer satisfaction and loyalty. On the other hand, if too many agents are on hand, excess costs are incurred. Therefore, efforts in the art to date have been focused on very closely matching actual staffing to actual traffic, and to ensuring that each agent adheres to his or her schedule closely throughout the day. Because of this conventional approach, agents are forced to work according to schedules that bear little resemblance to “normal” work schedules, since call volumes tend to be highly variable on each given day.
What is needed is a system for providing flexible, easy-to-use, and powerful routing capabilities for modern contact centers. Moreover, such a system should be easily deployed in a highly distributed architecture; in order that large scale globally optimized routing decisions can be made without using a single central routing engine. What is also needed is a more robust workforce management system that provides flexible and worker-friendly schedules for agents, and that is tightly integrated with the routing system, so that as changes occur during operations, WFM systems can detect impending imbalances and routing systems can adapt to avoid the common problems of call abandonment by customers and budget problems resulting from excess staffing.